# -*- coding: utf-8 -*-
from autocomplete_light.contrib.generic_m2m import GenericModelForm, \
    GenericModelMultipleChoiceField
from django import forms
from django.forms import ModelForm
from models import Proyecto
from proyectos.autocomplete_light_registry import \
    AutocompleteLocalidadesTodasItems
import autocomplete_light

from proyectos.widgets import SelectDateWidget
class DateInputExtend(forms.DateInput):
    input_type = 'date'

class ProyectoForm(GenericModelForm):
    nombre = forms.CharField(label =u'*Nombre del Proyecto')
    fecha_inicio = forms.DateField(label =u'*Fecha de Inicio del Proyecto',widget = SelectDateWidget(attrs={'style':'width:80px;'}) )
    fecha_fin = forms.DateField(label =u'*Fecha de Fin del Proyecto',widget = SelectDateWidget(attrs={'style':'width:80px;'}))
    todos_los_lugares = GenericModelMultipleChoiceField(
        widget=autocomplete_light.MultipleChoiceWidget(AutocompleteLocalidadesTodasItems),label='Localidades')
    class Meta:
        widgets = autocomplete_light.get_widgets_dict(Proyecto)
        model = Proyecto
        exclude = ('localidades','nivel_acceso','creador')
        
    def __init__(self, *args, **kw):
        super(ProyectoForm, self).__init__(*args, **kw)
        self.fields['publicaciones'].help_text = ''
        self.fields['organismos_financiadores'].help_text = ''
        self.fields['instituciones'].help_text = ''
        self.fields['datos'].help_text = ''
        #self.fields['localidades'].help_text = ''
        self.fields['lineas_de_investigacion'].help_text = ''
        self.fields['involucrados'].help_text = ''
        self.fields['documentos'].help_text = ''
        self.fields['encargados'].help_text = ''
    
    
    def clean(self):
        try:
            if self.cleaned_data['fecha_inicio'] > self.cleaned_data['fecha_fin']:
                msg = u"La fecha de inicio de proyecto no puede ser mayor a fecha de Fin."
                self._errors['fecha_inicio'] = self.error_class([msg])
                del self.cleaned_data['fecha_inicio']
        except:
            msg = u'Debe completar toda la Fecha. Fecha Inválida'
            self._errors['fecha_inicio'] = self.error_class([msg])
        
        return self.cleaned_data